(0) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

rec(rec(x)) → sent(rec(x))
rec(sent(x)) → sent(rec(x))
rec(no(x)) → sent(rec(x))
rec(bot) → up(sent(bot))
rec(up(x)) → up(rec(x))
sent(up(x)) → up(sent(x))
no(up(x)) → up(no(x))
top(rec(up(x))) → top(check(rec(x)))
top(sent(up(x))) → top(check(rec(x)))
top(no(up(x))) → top(check(rec(x)))
check(up(x)) → up(check(x))
check(sent(x)) → sent(check(x))
check(rec(x)) → rec(check(x))
check(no(x)) → no(check(x))
check(no(x)) → no(x)

Rewrite Strategy: INNERMOST

(1) DependencyGraphProof (BOTH BOUNDS(ID, ID) transformation)

The following rules are not reachable from basic terms in the dependency graph and can be removed:
top(rec(up(x))) → top(check(rec(x)))
top(sent(up(x))) → top(check(rec(x)))
top(no(up(x))) → top(check(rec(x)))

(2) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

check(no(x)) → no(x)
rec(sent(x)) → sent(rec(x))
check(sent(x)) → sent(check(x))
check(up(x)) → up(check(x))
rec(bot) → up(sent(bot))
rec(up(x)) → up(rec(x))
rec(rec(x)) → sent(rec(x))
check(no(x)) → no(check(x))
no(up(x)) → up(no(x))
rec(no(x)) → sent(rec(x))
sent(up(x)) → up(sent(x))
check(rec(x)) → rec(check(x))

Rewrite Strategy: INNERMOST

(3) NestedDefinedSymbolProof (BOTH BOUNDS(ID, ID) transformation)

The TRS does not nest defined symbols.
Hence, the left-hand sides of the following rules are not basic-reachable and can be removed:
check(no(x)) → no(x)
rec(sent(x)) → sent(rec(x))
check(sent(x)) → sent(check(x))
rec(rec(x)) → sent(rec(x))
check(no(x)) → no(check(x))
rec(no(x)) → sent(rec(x))
check(rec(x)) → rec(check(x))

(4) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^1).


The TRS R consists of the following rules:

check(up(x)) → up(check(x))
rec(bot) → up(sent(bot))
rec(up(x)) → up(rec(x))
no(up(x)) → up(no(x))
sent(up(x)) → up(sent(x))

Rewrite Strategy: INNERMOST

(5) CpxTrsMatchBoundsProof (EQUIVALENT transformation)

A linear upper bound on the runtime complexity of the TRS R could be shown with a Match Bound [MATCHBOUNDS1,MATCHBOUNDS2] of 1.
The certificate found is represented by the following graph.
Start state: 5
Accept states: [6]
Transitions:
5→6[check_1|0, rec_1|0, no_1|0, sent_1|0]
5→7[up_1|1]
5→8[up_1|1]
5→10[up_1|1]
5→11[up_1|1]
5→12[up_1|1]
6→6[up_1|0, bot|0]
7→6[check_1|1]
7→7[up_1|1]
8→9[sent_1|1]
9→6[bot|1]
10→6[rec_1|1]
10→8[up_1|1]
10→10[up_1|1]
11→6[no_1|1]
11→11[up_1|1]
12→6[sent_1|1]
12→12[up_1|1]

(6) BOUNDS(1, n^1)

(7) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted Cpx (relative) TRS to CDT

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

check(up(z0)) → up(check(z0))
rec(bot) → up(sent(bot))
rec(up(z0)) → up(rec(z0))
no(up(z0)) → up(no(z0))
sent(up(z0)) → up(sent(z0))
Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(bot) → c1(SENT(bot))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
S tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(bot) → c1(SENT(bot))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
K tuples:none
Defined Rule Symbols:

check, rec, no, sent

Defined Pair Symbols:

CHECK, REC, NO, SENT

Compound Symbols:

c, c1, c2, c3, c4

(9) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

REC(bot) → c1(SENT(bot))

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

check(up(z0)) → up(check(z0))
rec(bot) → up(sent(bot))
rec(up(z0)) → up(rec(z0))
no(up(z0)) → up(no(z0))
sent(up(z0)) → up(sent(z0))
Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
S tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
K tuples:none
Defined Rule Symbols:

check, rec, no, sent

Defined Pair Symbols:

CHECK, REC, NO, SENT

Compound Symbols:

c, c2, c3, c4

(11) CdtUsableRulesProof (EQUIVALENT transformation)

The following rules are not usable and were removed:

check(up(z0)) → up(check(z0))
rec(bot) → up(sent(bot))
rec(up(z0)) → up(rec(z0))
no(up(z0)) → up(no(z0))
sent(up(z0)) → up(sent(z0))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:none
Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
S tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
K tuples:none
Defined Rule Symbols:none

Defined Pair Symbols:

CHECK, REC, NO, SENT

Compound Symbols:

c, c2, c3, c4

(13) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

REC(up(z0)) → c2(REC(z0))
SENT(up(z0)) → c4(SENT(z0))
We considered the (Usable) Rules:none
And the Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(CHECK(x1)) = 0   
POL(NO(x1)) = 0   
POL(REC(x1)) = x1   
POL(SENT(x1)) = x1   
POL(c(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(up(x1)) = [2] + x1   

(14) Obligation:

Complexity Dependency Tuples Problem
Rules:none
Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
S tuples:

CHECK(up(z0)) → c(CHECK(z0))
NO(up(z0)) → c3(NO(z0))
K tuples:

REC(up(z0)) → c2(REC(z0))
SENT(up(z0)) → c4(SENT(z0))
Defined Rule Symbols:none

Defined Pair Symbols:

CHECK, REC, NO, SENT

Compound Symbols:

c, c2, c3, c4

(15) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

CHECK(up(z0)) → c(CHECK(z0))
NO(up(z0)) → c3(NO(z0))
We considered the (Usable) Rules:none
And the Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(CHECK(x1)) = [2]x1   
POL(NO(x1)) = [2]x1   
POL(REC(x1)) = 0   
POL(SENT(x1)) = 0   
POL(c(x1)) = x1   
POL(c2(x1)) = x1   
POL(c3(x1)) = x1   
POL(c4(x1)) = x1   
POL(up(x1)) = [2] + x1   

(16) Obligation:

Complexity Dependency Tuples Problem
Rules:none
Tuples:

CHECK(up(z0)) → c(CHECK(z0))
REC(up(z0)) → c2(REC(z0))
NO(up(z0)) → c3(NO(z0))
SENT(up(z0)) → c4(SENT(z0))
S tuples:none
K tuples:

REC(up(z0)) → c2(REC(z0))
SENT(up(z0)) → c4(SENT(z0))
CHECK(up(z0)) → c(CHECK(z0))
NO(up(z0)) → c3(NO(z0))
Defined Rule Symbols:none

Defined Pair Symbols:

CHECK, REC, NO, SENT

Compound Symbols:

c, c2, c3, c4

(17) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty

(18) BOUNDS(1, 1)